package com.keyword.utils.encryption;

import org.apache.commons.codec.digest.DigestUtils;

/**
 * @author yhx
 */
public class Md5Utils {

    /**
     * 带秘钥加密
     * @param text 明文
     * @param key 密钥
     * @return 密文
     */
    public static String md5WithKey(String text, String key){
        // 加密后的字符串
        String md5str = md5(text + key);
        return md5str;
    }

    /**
     * 不带秘钥加密
     * @param text
     * @return
     * @throws Exception
     */
    public static String md5(String text){
        // 加密后的字符串
        String md5str = DigestUtils.md5Hex(text);
        return md5str;
    }

    /**
     * MD5验证方法 根据传入的密钥进行验证
     * @param text 明文
     * @param key 密钥
     * @param md5 密文
     *
     */
    public static boolean verify(String text, String key, String md5){
        String md5str = md5WithKey(text, key);
        if (md5str.equalsIgnoreCase(md5)) {
            return true;
        }
        return false;
    }


    /**
     * 测试
     * @param args
     * @throws Exception
     */
    public static void main(String[] args){
        String salt = "啦啦啦啦";
        String s = Md5Utils.md5WithKey("123", salt);
        System.out.println(s);
        boolean verify = Md5Utils.verify("123456", "xiaofang", "a8c1d29b0a7ded39cdc202680953eafa");
        System.out.println(verify);
    }

}
